package com.java46.struts2.FoodType.service;

import com.java46.struts2.FoodType.dao.FoodTypeDao;
import com.java46.struts2.base.entity.GenericResult;
import com.java46.struts2.base.entity.PageEntity;
import com.java46.struts2.base.entity.TDishestypeEntity;
import com.java46.struts2.base.entity.vo.TypeFoods;
import com.java46.struts2.base.exception.BusinessException;
import com.java46.struts2.order.dao.OrderDao;

import java.util.List;
/**
 * @ClassName FoodTypeService
 * @Description 菜品类型的service
 * @Author Tigger Wu
 * @Date 2018/7/16 19:33
 * @Version 1.0
 **/
public class FoodTypeService {
    private FoodTypeDao foodTypeDao = new FoodTypeDao();
    /*
     *  查询全部菜品类型
     *
     * @author Tigger Wu
     * @date 2018/7/17 10:16
     * @param
     * @return
     */
    public List<TypeFoods>queryAll(){
        List<TypeFoods> dlist = foodTypeDao.queryAll();
        return dlist;
    }
//    /*
//     *  添加菜品类型
//     *
//     * @author Tigger Wu
//     * @date 2018/7/17 10:17
//     * @param
//     * @return
//     */
//    public void addType(String typename){
//        if("".equals(name)||name==null){
//            throw new BusinessException("error!");
//        }
//        foodTypeDao.addFoodType(name);
//     }
     /*
      *  删除菜品类型
      *
      * @author Tigger Wu
      * @date 2018/7/17 10:18
      * @param
      * @return
      */
     public void removeType(int id){
        if("".equals(id)){
            throw new BusinessException("error!!");
        }
        foodTypeDao.removeType(id);
     }
     /*
      *  改菜品类型
      *
      * @author Tigger Wu
      * @date 2018/7/17 10:20
      * @param
      * @return
      */
    public void updateType(TDishestypeEntity type){
        if(type==null){
            throw new BusinessException("error!check your fucking plugins");
        }
        foodTypeDao.updateType(type);
    }

    /**
     *@Author xiao
     *@Description //分页查询菜品类型可加关键字
     *@Date 9:53 2018/7/18
     *@Param [Pageno,Pagesize,Keyword]
     *@return PageEntity
     */
    public static PageEntity queryFoodType(String Pageno, String Pagesize, String Keyword){
        int pagesize=0;
        int pageno=0;
        //如果为空
        if (Pagesize==null||Pagesize.trim().equals("")){
            pagesize=8;
        }else {
            try {
                //转换出错
                pagesize=Integer.parseInt(Pagesize);
            }catch (Exception e){
                pagesize=8;
            }
        }
        try{
            //转换出错
            pageno=Integer.parseInt(Pageno);
        }catch (Exception e){
            pageno=1;
        }

        List list = FoodTypeDao.queryFoodType(Keyword,pageno,pagesize);
        if(list.isEmpty()){
            throw new BusinessException("没有查询到任何菜品类型数据");
        }
        PageEntity page=new PageEntity();
        //数据集合
        page.setList(list);
        int count=FoodTypeDao.queryTypesCount(Keyword);
        //总条数
        page.setTotalNumber(count);
        //页码
        page.setPageNo(pageno);
        //每页条数
        page.setPageSize(pagesize);
        //总页数
        page.setPageCount((page.getTotalNumber()%page.getPageSize()==0)?page.getTotalNumber()/page.getPageSize():page.getTotalNumber()/page.getPageSize()+1);
        return page;
    }

    /**
     *@Author xiao
     *@Description //根据菜品类型删除订单
     *@Date 11:57 2018/7/18
     *@Param [Typeid]//菜品类型编号
     *@return void
     */
    public static void deleteType(String Typeid){
        int typeid;
        if(Typeid==null||Typeid.trim().equals("")){
            throw new BusinessException("菜品类型编号为空");
        }
        try {
            typeid=Integer.parseInt(Typeid);
        }catch (Exception e){
            throw  new BusinessException("菜品类型编号格式不正确");
        }
        //删除菜品类型单表里的数据
        FoodTypeDao.deleteType(typeid);

    }

    /**
     * @Author xiaobo
     * @Description //添加菜品类型
     * @Date 16:58 2018/7/22 0022
     * @Param [Typename]
     * @return void
     */
    public static void addType(String Typename){
        if(Typename==null||Typename.trim().equals("")){
            throw new BusinessException("菜品类型名称为空");
        }
        //删除菜品类型单表里的数据
        FoodTypeDao.addType(Typename);
    }


}
